1. Field of the Invention
This invention relates to communication systems and associated devices and more particularly to methods of identifying the authenticity of a user accessing the communication system resources.
2. Description of the Related Art
A communication system generally includes multiple communication devices interconnected to each other in such a way that each device may be able to establish a communication path with another device within the communication system. The interconnection between devices may take the form of an interconnected set of sub-networks or subnets. A network can be made up of localized subnets, or can be extended to include multiple subnets to form an intranet. Further, multiple intranets can be extended to form an Internet.
Devices within a network communicate with one another using packet-based protocols such as Internet Protocol (“IP”) and Transmission Control Protocol (“Session Layer”). Data to be transmitted over the network using Session Layer/IP is broken up into a number of packets, which are transferred over the network along with embedded address and control information within each IP packet. These IP packets are separately sent across the network, possibly using different network paths, and are then re-assembled at a receiving device.
To ensure the reliability of the packet transmission, each layer of the popular Open System Interconnect (“OSI”) stack is responsible for a different aspect of transmission. The lower layers maintain the physical connection between devices while low-level protocols such as MAC Layer provide a method for sharing the communication medium as well as encapsulating higher-layer packets such as IP.
The IP protocol provides a method for routing packets within and between intranets, and across logically separated network segments. It also includes methods for CRC error checking and fragmenting data into smaller frames depending on the Maximum Transmission Unit (“MTU”) of the system. The Internet Protocol Version 4 (“IPv4”) specification provides for a 32-bit address field for packet source and destination, while the newer IPv6 specification expands this to 128 bits. The IP packet itself may encapsulate higher-layer communication protocols, such Session Layer, which can handle more advanced packet transmission functions such as out-of-order packet handling, communication timeouts and packet re-transmission.
A host is any device which can send and receive data and, as used herein, is generally found at the end nodes within a communications system. Each host will generally be capable of communicating using one or more of the protocols that are supported by the communication system, such as Session Layer/IP.
Secure communication may also be established across a public network using technologies such as Secure Sockets Layer (SSL), which breaks-up data into SSL Records that are encrypted during communications. Each SSL Record provides data user verification through the use of a message authentication code (MAC), which is a hash of each SSL Record. The hash function uses either MD5 or SHA-1.
SSL can use public key encryption to authenticate both parties to each other; however, common implementations such as HTTPS only authenticate the server to the client. SSL is utilized by HTTPS to establish secure web-based transactions. These transactions rely on SSL to encrypt the communication and authenticate the server to the client at the beginning of the session using certificates. However, SSL is not used by HTTPS to authenticate the user to the server. Web-based transactions using HTTPS rely on separate user verification methods to authenticate the user to the server. These methods typically include a username and password or challenge/response mechanisms. Once the user has authenticated to the server at the beginning of the session, the user is no longer authenticated for the rest of the session.
Certificates are used to authenticate the server to the client at the beginning of the SSL session. A certificate contains information about the server, and is signed by a certificate authority (CA). The CA is a trusted entity that is responsible for identifying certificate owners. A chain of signed certificates creates a certificate hierarchy. A web-browser will be able to identify and trust a certificate at some point in this hierarchy, forming a level of trust with the server that the client is connecting to.
Digital signatures are used along with encryption to provide authentication and assure integrity of the transmitted data. This is a type of asymmetric cryptography used to simulate the security properties of a signature in digital. Digital signature schemes are also based on PKI schemes wherein sending and receiving parties are given two algorithms, one for signing which involves the user's secret or private key, and one for verifying signatures which involves the user's public key. Digital signatures are like a fingerprint of a document or message that can be verified at the beginning or end. Digital signatures are used when the sender and receiver of a message may have a need for confidence that the message has not been altered during transmission. Although encryption hides the contents of a message, it may be possible to change an encrypted message without understanding it (some encryption algorithms known as nonmalleable ones prevent this, but others do not). If a message is digitally signed, any change in the message will invalidate the signature.
Digital signatures have several drawbacks. They are not particularly suited for online transactions. Also, typically, they work on the entire message and as such are susceptible to attacks such as phishing and pharming. Also, Digital signatures are themselves subjected to several problems such as trusted time stamping. Another problem with this scheme is the non-repudiation, where at a later date the transaction has to be verified.
The server sends the certificate containing the public key to the client. This public key is used by the client to encrypt a symmetric encryption key that will be used during the SSL session. The client and server must both support the symmetric encryption algorithm used. Typical algorithms include DES or triple-DES. Both data and the MAC are encrypted using this algorithm.
One weakness of SSL is that the client is only verified at the beginning of the SSL session. Once the client is authenticated, the MAC inserted into each SSL record authenticates the data, but this does not prevent a hacker from performing a man-in-the-middle attack. One example of such an attack utilizes techniques such as phishing or pharming, whereby a hacker can impersonate a login session, making the victim use SSL to reveal their username and password through the fake login. The hacker then relays the communication, with any changes, to the service provider. Communication from the service provider is also relayed through the hacker. In this way, the hacker effectively bypasses SSL security.
Network communication security methods such as VPN, IPsec, and SSL only provide user verification at the beginning of the session, or when the connection is first established.
It would be desirable to have a method for securing communications across a public or private network that could ensure that data was not visible to a third party and that it was not tampered with. Further, the identity of the sender should be authenticated continuously throughout communication session, ensuring that only the correct hosts have access to the information. Each packet should have embedded information that identifies the original packet data as well as the authenticated user. User verification can come from single or multifactor identification methods, including passwords, software tokens and hardware tokens. By authenticating the data and the user continuously throughout communication session, session hijacking and man-in-the-middle attacks can be prevented.
The secure communications method should be compatible with higher and lower level security methods such as HTTPS, SSL, VPN, and IPsec, but should provide the capability of continuous user and data user verification.